Java编程题-选择排序

选择排序:int 类型的数组 3 1 6 2 5

算法:找出最小值,然后这个最小值和最前面的数据交换位置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
public class SelectSort {
public static void main(String[] args) {
int[] a = { 3, 1, 6, 2, 5 };

// 假设第一个数据是最小值
// 记录最小值元素的下标
int min = 0;

for (int i = 0; i < a.length - 1; i++) {
for (int j = i; j < a.length; j++) {
if (a[j] < a[min]) {
// 给min重新赋值
min = j;
}
}
// 交换位置
if (min != i) {
int temp = a[min];
a[min] = a[i];
a[i] = temp;
}
}

for (int i = 0; i < a.length; i++) {
System.out.println(a[i]);
}
}
}

分析思路:

第一次循环:3 1 6 2 5

1 3 6 2 5

第二次循环:3 6 2 5

2 6 3 5

第三次循环 :6 3 5

3 6 5

第四次循环:6 5

5 6

牢牢记住要在待排序中找到最小值,然后和待排序的第一个元素进行交换!